Skip to content

fix(signals): match hyphenated ci-only no-issue rationale - #2117

Merged
JSONbored merged 1 commit into
JSONbored:mainfrom
luciferlive112116:fix/signals-ci-only-no-issue-rationale
Jul 1, 2026
Merged

fix(signals): match hyphenated ci-only no-issue rationale#2117
JSONbored merged 1 commit into
JSONbored:mainfrom
luciferlive112116:fix/signals-ci-only-no-issue-rationale

Conversation

@luciferlive112116

@luciferlive112116 luciferlive112116 commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

hasClearNoIssueRationale in src/signals/engine.ts is the shared definition of a clear no-issue rationale for the slop signal (#562), the public PR-panel traceability check, and the hard linked-issue gate. After #1905 (docs-only) and #1993 (test-only), ci-only PRs using the same Conventional Commits spelling were still missed.

Consequence: a ci-only PR with no linked issue — e.g. ci-only: tighten workflow cache — on a repo with linkedIssueGateMode === "block" can hit hardLinkedIssueBlock, fail the gate, and be auto-closed despite a valid rationale.

Fix: widen the alternative to ci[\s-]+only, matching ci only, ci-only, and embedded body forms while leaving unrelated CI mentions unchanged.

No linked issue: this repo's linkedIssuePolicy is preferred, and this is a small, self-evident one-token regex correctness fix parallel to the merged docs-only (#1905) and test-only (#1993) fixes.

Scope

Validation

  • git diff --check
  • npm run typecheck
  • npm run test:coverage — new hasClearNoIssueRationale ci-only spelling tests cover space, hyphenated, embedded body, and negative cases.
  • npm run test:ci

If any required check was skipped, explain why:

  • Node/npm is unavailable in this environment; CI will run the full gate on the PR.

Safety

  • No secrets/wallets/hotkeys; public GitHub output unchanged except correctly recognizing valid rationales.
  • No auth/API/UI change.

Notes

  • Reproduction: hasClearNoIssueRationale({ title: "ci-only: tighten workflow cache", body: "" }) returned false (should be true); "Fix CI flake in queue tests" still returns false.

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@8b0ac26). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2117   +/-   ##
=======================================
  Coverage        ?   95.73%           
=======================================
  Files           ?      223           
  Lines           ?    24741           
  Branches        ?     8969           
=======================================
  Hits            ?    23685           
  Misses          ?      433           
  Partials        ?      623           
Files with missing lines Coverage Δ
src/signals/engine.ts 97.36% <100.00%> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@loopover-orb

loopover-orb Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Warning

🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨

⏸️ Gittensory review result - manual review recommended

Review updated: 2026-07-01 17:19:35 UTC

2 files · 1 AI reviewer · no blockers · readiness 55/100 · CI green · clean

⏸️ Suggested Action - Manual Review

Review summary
This change widens the shared no-issue rationale matcher so `ci only` and `ci-only` are treated consistently with the existing docs-only and test-only cases. The regex remains narrowly scoped to the `ci ... only` phrase and the added negative tests cover ordinary CI mentions, so the visible behavior change is safe and aligned with the PR description. The most notable gap is only test completeness for the hyphenated body form that the summary explicitly calls out.

Nits — 4 non-blocking
  • nit: test/unit/signals-v2.test.ts:1780 covers an embedded body rationale with `ci only`, but not the hyphenated embedded form `ci-only` that the PR description says is covered.
  • Add one body regression case at test/unit/signals-v2.test.ts:1780 for `body: "This is a ci-only workflow tweak."` so the test suite pins both title and embedded-body hyphenation.
  • Pull request duplicates other open work — Check for an existing pull request or issue covering this change and coordinate or consolidate before continuing.
  • Readiness score is below the configured threshold — Use the readiness panel as advisory maintainer context; the score does not block this PR.
Signal Result Evidence
Code review ✅ No blockers 1 reviewer
Linked issue ✅ No-issue rationale PR body explains why no issue is linked.
Related work ⚠️ 3 scoped overlaps Top overlaps are listed below; lower-confidence bulk is hidden.
Change scope ❌ 8/20 High review scope from cached public metadata (size label size:XS; no linked issue context).
Validation posture ❌ 5/25 Preflight is holding this PR: the review lane is unavailable, so it is not ready for automated review.
Contributor workload ✅ 10/10 Author activity: 24 registered-repo PR(s), 6 merged, 7 issue(s).
Contributor context ✅ Confirmed Gittensor contributor luciferlive112116; Gittensor profile; 24 PR(s), 7 issue(s).
Gate result ✅ Passing No configured blocker found.
Review context
Contributor next steps
  • Review top overlaps.
  • Add a concise scope and risk note.
  • Await review-lane availability.
  • Triage stale or unlinked PRs.
  • Refresh registry data or choose a registered active repo.
  • Link the issue being solved, or explicitly explain why this is a no-issue PR.
  • Check active issues and PRs before submitting.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed


💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →.

Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.

  • Re-run Gittensory review

@loopover-orb loopover-orb Bot added gittensor gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. labels Jul 1, 2026
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jul 1, 2026
@luciferlive112116

Copy link
Copy Markdown
Contributor Author

Superseded by #2271, which combines the ci-only and refactor-only rationale spellings in one PR to avoid duplicate overlap warnings from the gate.

@luciferlive112116

Copy link
Copy Markdown
Contributor Author

Restored and rebased on latest main. Branch ix/signals-ci-only-no-issue-rationale now contains only the ci-only rationale token (no refactor/testdata changes). Sorry for the earlier mistaken close - this PR stays separate from #2271 and #2272.

Co-authored-by: Cursor <cursoragent@cursor.com>
@JSONbored
JSONbored force-pushed the fix/signals-ci-only-no-issue-rationale branch from 4e06af2 to 0dcc448 Compare July 1, 2026 18:39
@JSONbored
JSONbored merged commit 44c3a38 into JSONbored:main Jul 1, 2026
9 checks passed
@dosubot dosubot Bot added the lgtm label Jul 1, 2026
@JSONbored JSONbored removed the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants